/*  
Copyright Microsoft Corporation

Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at 

http://www.apache.org/licenses/LICENSE-2.0 

THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED 
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 
MERCHANTABLITY OR NON-INFRINGEMENT. 

See the Apache 2 License for the specific language governing permissions and
limitations under the License. */

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.250
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace MileageStats.Domain.SearchService {
    using System.Runtime.Serialization;
    using System;
    
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RequestBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchRequest))]
    public partial class RequestBase : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Credentials CredentialsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string CultureField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.ExecutionOptions ExecutionOptionsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.UserProfile UserProfileField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Credentials Credentials {
            get {
                return this.CredentialsField;
            }
            set {
                if ((object.ReferenceEquals(this.CredentialsField, value) != true)) {
                    this.CredentialsField = value;
                    this.RaisePropertyChanged("Credentials");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Culture {
            get {
                return this.CultureField;
            }
            set {
                if ((object.ReferenceEquals(this.CultureField, value) != true)) {
                    this.CultureField = value;
                    this.RaisePropertyChanged("Culture");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.ExecutionOptions ExecutionOptions {
            get {
                return this.ExecutionOptionsField;
            }
            set {
                if ((object.ReferenceEquals(this.ExecutionOptionsField, value) != true)) {
                    this.ExecutionOptionsField = value;
                    this.RaisePropertyChanged("ExecutionOptions");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.UserProfile UserProfile {
            get {
                return this.UserProfileField;
            }
            set {
                if ((object.ReferenceEquals(this.UserProfileField, value) != true)) {
                    this.UserProfileField = value;
                    this.RaisePropertyChanged("UserProfile");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Credentials", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class Credentials : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string ApplicationIdField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string TokenField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string ApplicationId {
            get {
                return this.ApplicationIdField;
            }
            set {
                if ((object.ReferenceEquals(this.ApplicationIdField, value) != true)) {
                    this.ApplicationIdField = value;
                    this.RaisePropertyChanged("ApplicationId");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Token {
            get {
                return this.TokenField;
            }
            set {
                if ((object.ReferenceEquals(this.TokenField, value) != true)) {
                    this.TokenField = value;
                    this.RaisePropertyChanged("Token");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ExecutionOptions", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class ExecutionOptions : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private bool SuppressFaultsField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool SuppressFaults {
            get {
                return this.SuppressFaultsField;
            }
            set {
                if ((this.SuppressFaultsField.Equals(value) != true)) {
                    this.SuppressFaultsField = value;
                    this.RaisePropertyChanged("SuppressFaults");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="UserProfile", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class UserProfile : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Heading CurrentHeadingField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.UserLocation CurrentLocationField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.DeviceType DeviceTypeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.DistanceUnit DistanceUnitField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string IPAddressField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.ShapeBase MapViewField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.SizeOfint ScreenSizeField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Heading CurrentHeading {
            get {
                return this.CurrentHeadingField;
            }
            set {
                if ((object.ReferenceEquals(this.CurrentHeadingField, value) != true)) {
                    this.CurrentHeadingField = value;
                    this.RaisePropertyChanged("CurrentHeading");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.UserLocation CurrentLocation {
            get {
                return this.CurrentLocationField;
            }
            set {
                if ((object.ReferenceEquals(this.CurrentLocationField, value) != true)) {
                    this.CurrentLocationField = value;
                    this.RaisePropertyChanged("CurrentLocation");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.DeviceType DeviceType {
            get {
                return this.DeviceTypeField;
            }
            set {
                if ((this.DeviceTypeField.Equals(value) != true)) {
                    this.DeviceTypeField = value;
                    this.RaisePropertyChanged("DeviceType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.DistanceUnit DistanceUnit {
            get {
                return this.DistanceUnitField;
            }
            set {
                if ((this.DistanceUnitField.Equals(value) != true)) {
                    this.DistanceUnitField = value;
                    this.RaisePropertyChanged("DistanceUnit");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string IPAddress {
            get {
                return this.IPAddressField;
            }
            set {
                if ((object.ReferenceEquals(this.IPAddressField, value) != true)) {
                    this.IPAddressField = value;
                    this.RaisePropertyChanged("IPAddress");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.ShapeBase MapView {
            get {
                return this.MapViewField;
            }
            set {
                if ((object.ReferenceEquals(this.MapViewField, value) != true)) {
                    this.MapViewField = value;
                    this.RaisePropertyChanged("MapView");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.SizeOfint ScreenSize {
            get {
                return this.ScreenSizeField;
            }
            set {
                if ((object.ReferenceEquals(this.ScreenSizeField, value) != true)) {
                    this.ScreenSizeField = value;
                    this.RaisePropertyChanged("ScreenSize");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SearchRequest", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class SearchRequest : MileageStats.Domain.SearchService.RequestBase {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string QueryField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.SearchOptions SearchOptionsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.StructuredSearchQuery StructuredQueryField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Query {
            get {
                return this.QueryField;
            }
            set {
                if ((object.ReferenceEquals(this.QueryField, value) != true)) {
                    this.QueryField = value;
                    this.RaisePropertyChanged("Query");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.SearchOptions SearchOptions {
            get {
                return this.SearchOptionsField;
            }
            set {
                if ((object.ReferenceEquals(this.SearchOptionsField, value) != true)) {
                    this.SearchOptionsField = value;
                    this.RaisePropertyChanged("SearchOptions");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.StructuredSearchQuery StructuredQuery {
            get {
                return this.StructuredQueryField;
            }
            set {
                if ((object.ReferenceEquals(this.StructuredQueryField, value) != true)) {
                    this.StructuredQueryField = value;
                    this.RaisePropertyChanged("StructuredQuery");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SearchOptions", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class SearchOptions : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Nullable<bool> AutocorrectQueryField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Nullable<int> CountField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.FilterExpressionBase FiltersField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.ListingType ListingTypeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private bool ParseOnlyField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Nullable<double> RadiusField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.SortOrder SortOrderField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int StartingIndexField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Nullable<bool> AutocorrectQuery {
            get {
                return this.AutocorrectQueryField;
            }
            set {
                if ((this.AutocorrectQueryField.Equals(value) != true)) {
                    this.AutocorrectQueryField = value;
                    this.RaisePropertyChanged("AutocorrectQuery");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Nullable<int> Count {
            get {
                return this.CountField;
            }
            set {
                if ((this.CountField.Equals(value) != true)) {
                    this.CountField = value;
                    this.RaisePropertyChanged("Count");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.FilterExpressionBase Filters {
            get {
                return this.FiltersField;
            }
            set {
                if ((object.ReferenceEquals(this.FiltersField, value) != true)) {
                    this.FiltersField = value;
                    this.RaisePropertyChanged("Filters");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.ListingType ListingType {
            get {
                return this.ListingTypeField;
            }
            set {
                if ((this.ListingTypeField.Equals(value) != true)) {
                    this.ListingTypeField = value;
                    this.RaisePropertyChanged("ListingType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool ParseOnly {
            get {
                return this.ParseOnlyField;
            }
            set {
                if ((this.ParseOnlyField.Equals(value) != true)) {
                    this.ParseOnlyField = value;
                    this.RaisePropertyChanged("ParseOnly");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Nullable<double> Radius {
            get {
                return this.RadiusField;
            }
            set {
                if ((this.RadiusField.Equals(value) != true)) {
                    this.RadiusField = value;
                    this.RaisePropertyChanged("Radius");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.SortOrder SortOrder {
            get {
                return this.SortOrderField;
            }
            set {
                if ((this.SortOrderField.Equals(value) != true)) {
                    this.SortOrderField = value;
                    this.RaisePropertyChanged("SortOrder");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int StartingIndex {
            get {
                return this.StartingIndexField;
            }
            set {
                if ((this.StartingIndexField.Equals(value) != true)) {
                    this.StartingIndexField = value;
                    this.RaisePropertyChanged("StartingIndex");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="StructuredSearchQuery", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class StructuredSearchQuery : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string KeywordField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string LocationField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Keyword {
            get {
                return this.KeywordField;
            }
            set {
                if ((object.ReferenceEquals(this.KeywordField, value) != true)) {
                    this.KeywordField = value;
                    this.RaisePropertyChanged("Keyword");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Location {
            get {
                return this.LocationField;
            }
            set {
                if ((object.ReferenceEquals(this.LocationField, value) != true)) {
                    this.LocationField = value;
                    this.RaisePropertyChanged("Location");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Heading", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class Heading : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private double OrientationField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Orientation {
            get {
                return this.OrientationField;
            }
            set {
                if ((this.OrientationField.Equals(value) != true)) {
                    this.OrientationField = value;
                    this.RaisePropertyChanged("Orientation");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="UserLocation", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class UserLocation : MileageStats.Domain.SearchService.Location {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Confidence ConfidenceField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Confidence Confidence {
            get {
                return this.ConfidenceField;
            }
            set {
                if ((this.ConfidenceField.Equals(value) != true)) {
                    this.ConfidenceField = value;
                    this.RaisePropertyChanged("Confidence");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ShapeBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Rectangle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Polygon))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Circle))]
    public partial class ShapeBase : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SizeOfint", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class SizeOfint : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int HeightField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int WidthField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Height {
            get {
                return this.HeightField;
            }
            set {
                if ((this.HeightField.Equals(value) != true)) {
                    this.HeightField = value;
                    this.RaisePropertyChanged("Height");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Width {
            get {
                return this.WidthField;
            }
            set {
                if ((this.WidthField.Equals(value) != true)) {
                    this.WidthField = value;
                    this.RaisePropertyChanged("Width");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="DeviceType", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum DeviceType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Desktop = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Mobile = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="DistanceUnit", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum DistanceUnit : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Kilometer = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Mile = 1,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Location", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.UserLocation))]
    public partial class Location : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private double AltitudeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private double LatitudeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private double LongitudeField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Altitude {
            get {
                return this.AltitudeField;
            }
            set {
                if ((this.AltitudeField.Equals(value) != true)) {
                    this.AltitudeField = value;
                    this.RaisePropertyChanged("Altitude");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Latitude {
            get {
                return this.LatitudeField;
            }
            set {
                if ((this.LatitudeField.Equals(value) != true)) {
                    this.LatitudeField = value;
                    this.RaisePropertyChanged("Latitude");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Longitude {
            get {
                return this.LongitudeField;
            }
            set {
                if ((this.LongitudeField.Equals(value) != true)) {
                    this.LongitudeField = value;
                    this.RaisePropertyChanged("Longitude");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="GeocodeLocation", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class GeocodeLocation : MileageStats.Domain.SearchService.Location {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string CalculationMethodField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string CalculationMethod {
            get {
                return this.CalculationMethodField;
            }
            set {
                if ((object.ReferenceEquals(this.CalculationMethodField, value) != true)) {
                    this.CalculationMethodField = value;
                    this.RaisePropertyChanged("CalculationMethod");
                }
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Confidence", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum Confidence : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        High = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Medium = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Low = 2,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Rectangle", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class Rectangle : MileageStats.Domain.SearchService.ShapeBase {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Location NortheastField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Location SouthwestField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Location Northeast {
            get {
                return this.NortheastField;
            }
            set {
                if ((object.ReferenceEquals(this.NortheastField, value) != true)) {
                    this.NortheastField = value;
                    this.RaisePropertyChanged("Northeast");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Location Southwest {
            get {
                return this.SouthwestField;
            }
            set {
                if ((object.ReferenceEquals(this.SouthwestField, value) != true)) {
                    this.SouthwestField = value;
                    this.RaisePropertyChanged("Southwest");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Polygon", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class Polygon : MileageStats.Domain.SearchService.ShapeBase {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Location[] VerticesField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Location[] Vertices {
            get {
                return this.VerticesField;
            }
            set {
                if ((object.ReferenceEquals(this.VerticesField, value) != true)) {
                    this.VerticesField = value;
                    this.RaisePropertyChanged("Vertices");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Circle", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class Circle : MileageStats.Domain.SearchService.ShapeBase {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Location CenterField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.DistanceUnit DistanceUnitField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private double RadiusField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Location Center {
            get {
                return this.CenterField;
            }
            set {
                if ((object.ReferenceEquals(this.CenterField, value) != true)) {
                    this.CenterField = value;
                    this.RaisePropertyChanged("Center");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.DistanceUnit DistanceUnit {
            get {
                return this.DistanceUnitField;
            }
            set {
                if ((this.DistanceUnitField.Equals(value) != true)) {
                    this.DistanceUnitField = value;
                    this.RaisePropertyChanged("DistanceUnit");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Radius {
            get {
                return this.RadiusField;
            }
            set {
                if ((this.RadiusField.Equals(value) != true)) {
                    this.RadiusField = value;
                    this.RaisePropertyChanged("Radius");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="FilterExpressionBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpression))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpressionClause))]
    public partial class FilterExpressionBase : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ListingType", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    public enum ListingType : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Business = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        CommunityContent = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Person = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Unknown = 3,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SortOrder", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    public enum SortOrder : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Relevance = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Distance = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Rating = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Popularity = 3,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="FilterExpression", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(object[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(string[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<MileageStats.Domain.SearchService.Neighborhood, int>))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<string, object>))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<int, MileageStats.Domain.SearchService.CategorySpecificPropertySet>))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchRequest))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchOptions))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ListingType))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SortOrder))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.StructuredSearchQuery))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResponse))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.QuerySuggestion))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResultSet[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResultSet))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchRegion[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchRegion))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.AvailableFilter[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.AvailableFilter))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ValueListFilter))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Neighborhood))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterValue))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Category))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.RangeFilter))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CategoryCount[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CategoryCount))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Parse))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResultBase[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResultBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.LocationData))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CommunityContentSearchResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.BusinessSearchResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Category[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CategorySpecificPropertySet))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Neighborhood[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.PersonSearchResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.RequestBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Credentials))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ExecutionOptions))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.UserProfile))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Heading))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.UserLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Location))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Confidence))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.DeviceType))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.DistanceUnit))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ShapeBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Rectangle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Polygon))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Location[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Circle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SizeOfint))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpressionBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.LogicalOperator))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CompareOperator))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpressionClause))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpressionBase[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ResponseBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ResponseSummary))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.AuthenticationResultCode))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ResponseStatusCode))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.GeocodeResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Address))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.GeocodeLocation[]))]
    public partial class FilterExpression : MileageStats.Domain.SearchService.FilterExpressionBase {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.CompareOperator CompareOperatorField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private object FilterValueField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int PropertyIdField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.CompareOperator CompareOperator {
            get {
                return this.CompareOperatorField;
            }
            set {
                if ((this.CompareOperatorField.Equals(value) != true)) {
                    this.CompareOperatorField = value;
                    this.RaisePropertyChanged("CompareOperator");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public object FilterValue {
            get {
                return this.FilterValueField;
            }
            set {
                if ((object.ReferenceEquals(this.FilterValueField, value) != true)) {
                    this.FilterValueField = value;
                    this.RaisePropertyChanged("FilterValue");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int PropertyId {
            get {
                return this.PropertyIdField;
            }
            set {
                if ((this.PropertyIdField.Equals(value) != true)) {
                    this.PropertyIdField = value;
                    this.RaisePropertyChanged("PropertyId");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="FilterExpressionClause", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class FilterExpressionClause : MileageStats.Domain.SearchService.FilterExpressionBase {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.FilterExpressionBase[] ExpressionsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.LogicalOperator LogicalOperatorField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.FilterExpressionBase[] Expressions {
            get {
                return this.ExpressionsField;
            }
            set {
                if ((object.ReferenceEquals(this.ExpressionsField, value) != true)) {
                    this.ExpressionsField = value;
                    this.RaisePropertyChanged("Expressions");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.LogicalOperator LogicalOperator {
            get {
                return this.LogicalOperatorField;
            }
            set {
                if ((this.LogicalOperatorField.Equals(value) != true)) {
                    this.LogicalOperatorField = value;
                    this.RaisePropertyChanged("LogicalOperator");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Neighborhood", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class Neighborhood : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string CityField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int IdField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string NameField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string City {
            get {
                return this.CityField;
            }
            set {
                if ((object.ReferenceEquals(this.CityField, value) != true)) {
                    this.CityField = value;
                    this.RaisePropertyChanged("City");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Id {
            get {
                return this.IdField;
            }
            set {
                if ((this.IdField.Equals(value) != true)) {
                    this.IdField = value;
                    this.RaisePropertyChanged("Id");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Name {
            get {
                return this.NameField;
            }
            set {
                if ((object.ReferenceEquals(this.NameField, value) != true)) {
                    this.NameField = value;
                    this.RaisePropertyChanged("Name");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="CategorySpecificPropertySet", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class CategorySpecificPropertySet : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string CategoryNameField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Collections.Generic.Dictionary<string, object> PropertiesField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string CategoryName {
            get {
                return this.CategoryNameField;
            }
            set {
                if ((object.ReferenceEquals(this.CategoryNameField, value) != true)) {
                    this.CategoryNameField = value;
                    this.RaisePropertyChanged("CategoryName");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.Generic.Dictionary<string, object> Properties {
            get {
                return this.PropertiesField;
            }
            set {
                if ((object.ReferenceEquals(this.PropertiesField, value) != true)) {
                    this.PropertiesField = value;
                    this.RaisePropertyChanged("Properties");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SearchResponse", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class SearchResponse : MileageStats.Domain.SearchService.ResponseBase {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.QuerySuggestion QuerySuggestionField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.SearchResultSet[] ResultSetsField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.QuerySuggestion QuerySuggestion {
            get {
                return this.QuerySuggestionField;
            }
            set {
                if ((object.ReferenceEquals(this.QuerySuggestionField, value) != true)) {
                    this.QuerySuggestionField = value;
                    this.RaisePropertyChanged("QuerySuggestion");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.SearchResultSet[] ResultSets {
            get {
                return this.ResultSetsField;
            }
            set {
                if ((object.ReferenceEquals(this.ResultSetsField, value) != true)) {
                    this.ResultSetsField = value;
                    this.RaisePropertyChanged("ResultSets");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="QuerySuggestion", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class QuerySuggestion : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string QueryField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.StructuredSearchQuery StructuredQueryField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Query {
            get {
                return this.QueryField;
            }
            set {
                if ((object.ReferenceEquals(this.QueryField, value) != true)) {
                    this.QueryField = value;
                    this.RaisePropertyChanged("Query");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.StructuredSearchQuery StructuredQuery {
            get {
                return this.StructuredQueryField;
            }
            set {
                if ((object.ReferenceEquals(this.StructuredQueryField, value) != true)) {
                    this.StructuredQueryField = value;
                    this.RaisePropertyChanged("StructuredQuery");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SearchResultSet", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class SearchResultSet : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.SearchRegion[] AlternateSearchRegionsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.AvailableFilter[] AvailableFiltersField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.CategoryCount[] CategoryCountsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int EstimatedMatchesField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string ListingTypeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Parse ParseField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Category QueryCategoryField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private bool QueryCorrectedField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.SearchResultBase[] ResultsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.SearchRegion SearchRegionField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.SearchRegion[] AlternateSearchRegions {
            get {
                return this.AlternateSearchRegionsField;
            }
            set {
                if ((object.ReferenceEquals(this.AlternateSearchRegionsField, value) != true)) {
                    this.AlternateSearchRegionsField = value;
                    this.RaisePropertyChanged("AlternateSearchRegions");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.AvailableFilter[] AvailableFilters {
            get {
                return this.AvailableFiltersField;
            }
            set {
                if ((object.ReferenceEquals(this.AvailableFiltersField, value) != true)) {
                    this.AvailableFiltersField = value;
                    this.RaisePropertyChanged("AvailableFilters");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.CategoryCount[] CategoryCounts {
            get {
                return this.CategoryCountsField;
            }
            set {
                if ((object.ReferenceEquals(this.CategoryCountsField, value) != true)) {
                    this.CategoryCountsField = value;
                    this.RaisePropertyChanged("CategoryCounts");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int EstimatedMatches {
            get {
                return this.EstimatedMatchesField;
            }
            set {
                if ((this.EstimatedMatchesField.Equals(value) != true)) {
                    this.EstimatedMatchesField = value;
                    this.RaisePropertyChanged("EstimatedMatches");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string ListingType {
            get {
                return this.ListingTypeField;
            }
            set {
                if ((object.ReferenceEquals(this.ListingTypeField, value) != true)) {
                    this.ListingTypeField = value;
                    this.RaisePropertyChanged("ListingType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Parse Parse {
            get {
                return this.ParseField;
            }
            set {
                if ((object.ReferenceEquals(this.ParseField, value) != true)) {
                    this.ParseField = value;
                    this.RaisePropertyChanged("Parse");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Category QueryCategory {
            get {
                return this.QueryCategoryField;
            }
            set {
                if ((object.ReferenceEquals(this.QueryCategoryField, value) != true)) {
                    this.QueryCategoryField = value;
                    this.RaisePropertyChanged("QueryCategory");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public bool QueryCorrected {
            get {
                return this.QueryCorrectedField;
            }
            set {
                if ((this.QueryCorrectedField.Equals(value) != true)) {
                    this.QueryCorrectedField = value;
                    this.RaisePropertyChanged("QueryCorrected");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.SearchResultBase[] Results {
            get {
                return this.ResultsField;
            }
            set {
                if ((object.ReferenceEquals(this.ResultsField, value) != true)) {
                    this.ResultsField = value;
                    this.RaisePropertyChanged("Results");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.SearchRegion SearchRegion {
            get {
                return this.SearchRegionField;
            }
            set {
                if ((object.ReferenceEquals(this.SearchRegionField, value) != true)) {
                    this.SearchRegionField = value;
                    this.RaisePropertyChanged("SearchRegion");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SearchRegion", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class SearchRegion : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.ShapeBase BoundingAreaField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.GeocodeResult GeocodeLocationField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string SourceField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.ShapeBase BoundingArea {
            get {
                return this.BoundingAreaField;
            }
            set {
                if ((object.ReferenceEquals(this.BoundingAreaField, value) != true)) {
                    this.BoundingAreaField = value;
                    this.RaisePropertyChanged("BoundingArea");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.GeocodeResult GeocodeLocation {
            get {
                return this.GeocodeLocationField;
            }
            set {
                if ((object.ReferenceEquals(this.GeocodeLocationField, value) != true)) {
                    this.GeocodeLocationField = value;
                    this.RaisePropertyChanged("GeocodeLocation");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Source {
            get {
                return this.SourceField;
            }
            set {
                if ((object.ReferenceEquals(this.SourceField, value) != true)) {
                    this.SourceField = value;
                    this.RaisePropertyChanged("Source");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="AvailableFilter", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ValueListFilter))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.RangeFilter))]
    public partial class AvailableFilter : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int PropertyIdField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string PropertyNameField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int PropertyId {
            get {
                return this.PropertyIdField;
            }
            set {
                if ((this.PropertyIdField.Equals(value) != true)) {
                    this.PropertyIdField = value;
                    this.RaisePropertyChanged("PropertyId");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string PropertyName {
            get {
                return this.PropertyNameField;
            }
            set {
                if ((object.ReferenceEquals(this.PropertyNameField, value) != true)) {
                    this.PropertyNameField = value;
                    this.RaisePropertyChanged("PropertyName");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ValueListFilter", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(object[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(string[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<MileageStats.Domain.SearchService.Neighborhood, int>))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<string, object>))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<int, MileageStats.Domain.SearchService.CategorySpecificPropertySet>))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchRequest))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchOptions))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ListingType))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SortOrder))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.StructuredSearchQuery))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResponse))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.QuerySuggestion))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResultSet[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResultSet))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchRegion[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchRegion))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.AvailableFilter[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.AvailableFilter))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Neighborhood))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterValue))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Category))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.RangeFilter))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CategoryCount[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CategoryCount))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Parse))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResultBase[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResultBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.LocationData))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CommunityContentSearchResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.BusinessSearchResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Category[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CategorySpecificPropertySet))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Neighborhood[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.PersonSearchResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.RequestBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Credentials))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ExecutionOptions))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.UserProfile))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Heading))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.UserLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Location))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Confidence))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.DeviceType))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.DistanceUnit))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ShapeBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Rectangle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Polygon))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Location[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Circle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SizeOfint))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpressionBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.LogicalOperator))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpression))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CompareOperator))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpressionClause))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpressionBase[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ResponseBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ResponseSummary))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.AuthenticationResultCode))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ResponseStatusCode))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.GeocodeResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Address))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.GeocodeLocation[]))]
    public partial class ValueListFilter : MileageStats.Domain.SearchService.AvailableFilter {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private object[] ValuesField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public object[] Values {
            get {
                return this.ValuesField;
            }
            set {
                if ((object.ReferenceEquals(this.ValuesField, value) != true)) {
                    this.ValuesField = value;
                    this.RaisePropertyChanged("Values");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="FilterValue", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class FilterValue : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int IdField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string NameField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Id {
            get {
                return this.IdField;
            }
            set {
                if ((this.IdField.Equals(value) != true)) {
                    this.IdField = value;
                    this.RaisePropertyChanged("Id");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Name {
            get {
                return this.NameField;
            }
            set {
                if ((object.ReferenceEquals(this.NameField, value) != true)) {
                    this.NameField = value;
                    this.RaisePropertyChanged("Name");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Category", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class Category : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int IdField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string NameField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Id {
            get {
                return this.IdField;
            }
            set {
                if ((this.IdField.Equals(value) != true)) {
                    this.IdField = value;
                    this.RaisePropertyChanged("Id");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Name {
            get {
                return this.NameField;
            }
            set {
                if ((object.ReferenceEquals(this.NameField, value) != true)) {
                    this.NameField = value;
                    this.RaisePropertyChanged("Name");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="RangeFilter", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(object[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(string[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<MileageStats.Domain.SearchService.Neighborhood, int>))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<string, object>))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(System.Collections.Generic.Dictionary<int, MileageStats.Domain.SearchService.CategorySpecificPropertySet>))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchRequest))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchOptions))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ListingType))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SortOrder))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.StructuredSearchQuery))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResponse))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.QuerySuggestion))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResultSet[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResultSet))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchRegion[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchRegion))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.AvailableFilter[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.AvailableFilter))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ValueListFilter))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Neighborhood))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterValue))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Category))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CategoryCount[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CategoryCount))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Parse))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResultBase[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResultBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.LocationData))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CommunityContentSearchResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.BusinessSearchResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Category[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CategorySpecificPropertySet))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Neighborhood[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.PersonSearchResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.RequestBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Credentials))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ExecutionOptions))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.UserProfile))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Heading))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.UserLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Location))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.GeocodeLocation))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Confidence))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.DeviceType))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.DistanceUnit))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ShapeBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Rectangle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Polygon))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Location[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Circle))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SizeOfint))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpressionBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.LogicalOperator))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpression))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CompareOperator))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpressionClause))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.FilterExpressionBase[]))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ResponseBase))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ResponseSummary))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.AuthenticationResultCode))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.ResponseStatusCode))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.GeocodeResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.Address))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.GeocodeLocation[]))]
    public partial class RangeFilter : MileageStats.Domain.SearchService.AvailableFilter {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private object MaximumValueField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private object MinimumValueField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public object MaximumValue {
            get {
                return this.MaximumValueField;
            }
            set {
                if ((object.ReferenceEquals(this.MaximumValueField, value) != true)) {
                    this.MaximumValueField = value;
                    this.RaisePropertyChanged("MaximumValue");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public object MinimumValue {
            get {
                return this.MinimumValueField;
            }
            set {
                if ((object.ReferenceEquals(this.MinimumValueField, value) != true)) {
                    this.MinimumValueField = value;
                    this.RaisePropertyChanged("MinimumValue");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="CategoryCount", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class CategoryCount : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Category CategoryField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int CountField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Collections.Generic.Dictionary<MileageStats.Domain.SearchService.Neighborhood, int> CountByNeighborhoodField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Category Category {
            get {
                return this.CategoryField;
            }
            set {
                if ((object.ReferenceEquals(this.CategoryField, value) != true)) {
                    this.CategoryField = value;
                    this.RaisePropertyChanged("Category");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int Count {
            get {
                return this.CountField;
            }
            set {
                if ((this.CountField.Equals(value) != true)) {
                    this.CountField = value;
                    this.RaisePropertyChanged("Count");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.Generic.Dictionary<MileageStats.Domain.SearchService.Neighborhood, int> CountByNeighborhood {
            get {
                return this.CountByNeighborhoodField;
            }
            set {
                if ((object.ReferenceEquals(this.CountByNeighborhoodField, value) != true)) {
                    this.CountByNeighborhoodField = value;
                    this.RaisePropertyChanged("CountByNeighborhood");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Parse", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class Parse : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Address AddressField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string KeywordField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string LandmarkField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string LocationSeparatorField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Address Address {
            get {
                return this.AddressField;
            }
            set {
                if ((object.ReferenceEquals(this.AddressField, value) != true)) {
                    this.AddressField = value;
                    this.RaisePropertyChanged("Address");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Keyword {
            get {
                return this.KeywordField;
            }
            set {
                if ((object.ReferenceEquals(this.KeywordField, value) != true)) {
                    this.KeywordField = value;
                    this.RaisePropertyChanged("Keyword");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Landmark {
            get {
                return this.LandmarkField;
            }
            set {
                if ((object.ReferenceEquals(this.LandmarkField, value) != true)) {
                    this.LandmarkField = value;
                    this.RaisePropertyChanged("Landmark");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string LocationSeparator {
            get {
                return this.LocationSeparatorField;
            }
            set {
                if ((object.ReferenceEquals(this.LocationSeparatorField, value) != true)) {
                    this.LocationSeparatorField = value;
                    this.RaisePropertyChanged("LocationSeparator");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="SearchResultBase", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.CommunityContentSearchResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.BusinessSearchResult))]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.PersonSearchResult))]
    public partial class SearchResultBase : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private double DistanceField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string IdField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.LocationData LocationDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string NameField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double Distance {
            get {
                return this.DistanceField;
            }
            set {
                if ((this.DistanceField.Equals(value) != true)) {
                    this.DistanceField = value;
                    this.RaisePropertyChanged("Distance");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Id {
            get {
                return this.IdField;
            }
            set {
                if ((object.ReferenceEquals(this.IdField, value) != true)) {
                    this.IdField = value;
                    this.RaisePropertyChanged("Id");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.LocationData LocationData {
            get {
                return this.LocationDataField;
            }
            set {
                if ((object.ReferenceEquals(this.LocationDataField, value) != true)) {
                    this.LocationDataField = value;
                    this.RaisePropertyChanged("LocationData");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Name {
            get {
                return this.NameField;
            }
            set {
                if ((object.ReferenceEquals(this.NameField, value) != true)) {
                    this.NameField = value;
                    this.RaisePropertyChanged("Name");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="LocationData", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class LocationData : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Confidence ConfidenceField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.GeocodeLocation[] LocationsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string[] MatchCodesField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Confidence Confidence {
            get {
                return this.ConfidenceField;
            }
            set {
                if ((this.ConfidenceField.Equals(value) != true)) {
                    this.ConfidenceField = value;
                    this.RaisePropertyChanged("Confidence");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.GeocodeLocation[] Locations {
            get {
                return this.LocationsField;
            }
            set {
                if ((object.ReferenceEquals(this.LocationsField, value) != true)) {
                    this.LocationsField = value;
                    this.RaisePropertyChanged("Locations");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string[] MatchCodes {
            get {
                return this.MatchCodesField;
            }
            set {
                if ((object.ReferenceEquals(this.MatchCodesField, value) != true)) {
                    this.MatchCodesField = value;
                    this.RaisePropertyChanged("MatchCodes");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="CommunityContentSearchResult", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class CommunityContentSearchResult : MileageStats.Domain.SearchService.SearchResultBase {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Collections.Generic.Dictionary<string, object> AdditionalPropertiesField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string DescriptionField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.Generic.Dictionary<string, object> AdditionalProperties {
            get {
                return this.AdditionalPropertiesField;
            }
            set {
                if ((object.ReferenceEquals(this.AdditionalPropertiesField, value) != true)) {
                    this.AdditionalPropertiesField = value;
                    this.RaisePropertyChanged("AdditionalProperties");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Description {
            get {
                return this.DescriptionField;
            }
            set {
                if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
                    this.DescriptionField = value;
                    this.RaisePropertyChanged("Description");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="BusinessSearchResult", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class BusinessSearchResult : MileageStats.Domain.SearchService.SearchResultBase {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Collections.Generic.Dictionary<string, object> AdditionalPropertiesField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Address AddressField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Category[] CategoriesField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Collections.Generic.Dictionary<int, MileageStats.Domain.SearchService.CategorySpecificPropertySet> CategorySpecificPropertiesField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Neighborhood[] NeighborhoodsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string PhoneNumberField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int RatingCountField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private int ReviewCountField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private double UserRatingField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Uri WebsiteField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.Generic.Dictionary<string, object> AdditionalProperties {
            get {
                return this.AdditionalPropertiesField;
            }
            set {
                if ((object.ReferenceEquals(this.AdditionalPropertiesField, value) != true)) {
                    this.AdditionalPropertiesField = value;
                    this.RaisePropertyChanged("AdditionalProperties");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Address Address {
            get {
                return this.AddressField;
            }
            set {
                if ((object.ReferenceEquals(this.AddressField, value) != true)) {
                    this.AddressField = value;
                    this.RaisePropertyChanged("Address");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Category[] Categories {
            get {
                return this.CategoriesField;
            }
            set {
                if ((object.ReferenceEquals(this.CategoriesField, value) != true)) {
                    this.CategoriesField = value;
                    this.RaisePropertyChanged("Categories");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Collections.Generic.Dictionary<int, MileageStats.Domain.SearchService.CategorySpecificPropertySet> CategorySpecificProperties {
            get {
                return this.CategorySpecificPropertiesField;
            }
            set {
                if ((object.ReferenceEquals(this.CategorySpecificPropertiesField, value) != true)) {
                    this.CategorySpecificPropertiesField = value;
                    this.RaisePropertyChanged("CategorySpecificProperties");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Neighborhood[] Neighborhoods {
            get {
                return this.NeighborhoodsField;
            }
            set {
                if ((object.ReferenceEquals(this.NeighborhoodsField, value) != true)) {
                    this.NeighborhoodsField = value;
                    this.RaisePropertyChanged("Neighborhoods");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string PhoneNumber {
            get {
                return this.PhoneNumberField;
            }
            set {
                if ((object.ReferenceEquals(this.PhoneNumberField, value) != true)) {
                    this.PhoneNumberField = value;
                    this.RaisePropertyChanged("PhoneNumber");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int RatingCount {
            get {
                return this.RatingCountField;
            }
            set {
                if ((this.RatingCountField.Equals(value) != true)) {
                    this.RatingCountField = value;
                    this.RaisePropertyChanged("RatingCount");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public int ReviewCount {
            get {
                return this.ReviewCountField;
            }
            set {
                if ((this.ReviewCountField.Equals(value) != true)) {
                    this.ReviewCountField = value;
                    this.RaisePropertyChanged("ReviewCount");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public double UserRating {
            get {
                return this.UserRatingField;
            }
            set {
                if ((this.UserRatingField.Equals(value) != true)) {
                    this.UserRatingField = value;
                    this.RaisePropertyChanged("UserRating");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Uri Website {
            get {
                return this.WebsiteField;
            }
            set {
                if ((object.ReferenceEquals(this.WebsiteField, value) != true)) {
                    this.WebsiteField = value;
                    this.RaisePropertyChanged("Website");
                }
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="PersonSearchResult", Namespace="http://dev.virtualearth.net/webservices/v1/search")]
    [System.SerializableAttribute()]
    public partial class PersonSearchResult : MileageStats.Domain.SearchService.SearchResultBase {
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Address AddressField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string PhoneNumberField;
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Address Address {
            get {
                return this.AddressField;
            }
            set {
                if ((object.ReferenceEquals(this.AddressField, value) != true)) {
                    this.AddressField = value;
                    this.RaisePropertyChanged("Address");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string PhoneNumber {
            get {
                return this.PhoneNumberField;
            }
            set {
                if ((object.ReferenceEquals(this.PhoneNumberField, value) != true)) {
                    this.PhoneNumberField = value;
                    this.RaisePropertyChanged("PhoneNumber");
                }
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="LogicalOperator", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum LogicalOperator : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        And = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Or = 1,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="CompareOperator", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum CompareOperator : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Equals = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        GreaterThan = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        GreaterThanOrEquals = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        LessThan = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        LessThanOrEquals = 4,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseBase", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    [System.Runtime.Serialization.KnownTypeAttribute(typeof(MileageStats.Domain.SearchService.SearchResponse))]
    public partial class ResponseBase : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private System.Uri BrandLogoUriField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.ResponseSummary ResponseSummaryField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public System.Uri BrandLogoUri {
            get {
                return this.BrandLogoUriField;
            }
            set {
                if ((object.ReferenceEquals(this.BrandLogoUriField, value) != true)) {
                    this.BrandLogoUriField = value;
                    this.RaisePropertyChanged("BrandLogoUri");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.ResponseSummary ResponseSummary {
            get {
                return this.ResponseSummaryField;
            }
            set {
                if ((object.ReferenceEquals(this.ResponseSummaryField, value) != true)) {
                    this.ResponseSummaryField = value;
                    this.RaisePropertyChanged("ResponseSummary");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class ResponseSummary : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.AuthenticationResultCode AuthenticationResultCodeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string CopyrightField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string FaultReasonField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.ResponseStatusCode StatusCodeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string TraceIdField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.AuthenticationResultCode AuthenticationResultCode {
            get {
                return this.AuthenticationResultCodeField;
            }
            set {
                if ((this.AuthenticationResultCodeField.Equals(value) != true)) {
                    this.AuthenticationResultCodeField = value;
                    this.RaisePropertyChanged("AuthenticationResultCode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Copyright {
            get {
                return this.CopyrightField;
            }
            set {
                if ((object.ReferenceEquals(this.CopyrightField, value) != true)) {
                    this.CopyrightField = value;
                    this.RaisePropertyChanged("Copyright");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string FaultReason {
            get {
                return this.FaultReasonField;
            }
            set {
                if ((object.ReferenceEquals(this.FaultReasonField, value) != true)) {
                    this.FaultReasonField = value;
                    this.RaisePropertyChanged("FaultReason");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.ResponseStatusCode StatusCode {
            get {
                return this.StatusCodeField;
            }
            set {
                if ((this.StatusCodeField.Equals(value) != true)) {
                    this.StatusCodeField = value;
                    this.RaisePropertyChanged("StatusCode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string TraceId {
            get {
                return this.TraceIdField;
            }
            set {
                if ((object.ReferenceEquals(this.TraceIdField, value) != true)) {
                    this.TraceIdField = value;
                    this.RaisePropertyChanged("TraceId");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="AuthenticationResultCode", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum AuthenticationResultCode : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        None = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NoCredentials = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ValidCredentials = 2,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        InvalidCredentials = 3,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        CredentialsExpired = 4,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        NotAuthorized = 7,
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="ResponseStatusCode", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    public enum ResponseStatusCode : int {
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        Success = 0,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        BadRequest = 1,
        
        [System.Runtime.Serialization.EnumMemberAttribute()]
        ServerError = 2,
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="GeocodeResult", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class GeocodeResult : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Address AddressField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Rectangle BestViewField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.Confidence ConfidenceField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string DisplayNameField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string EntityTypeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private MileageStats.Domain.SearchService.GeocodeLocation[] LocationsField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string[] MatchCodesField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Address Address {
            get {
                return this.AddressField;
            }
            set {
                if ((object.ReferenceEquals(this.AddressField, value) != true)) {
                    this.AddressField = value;
                    this.RaisePropertyChanged("Address");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Rectangle BestView {
            get {
                return this.BestViewField;
            }
            set {
                if ((object.ReferenceEquals(this.BestViewField, value) != true)) {
                    this.BestViewField = value;
                    this.RaisePropertyChanged("BestView");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.Confidence Confidence {
            get {
                return this.ConfidenceField;
            }
            set {
                if ((this.ConfidenceField.Equals(value) != true)) {
                    this.ConfidenceField = value;
                    this.RaisePropertyChanged("Confidence");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string DisplayName {
            get {
                return this.DisplayNameField;
            }
            set {
                if ((object.ReferenceEquals(this.DisplayNameField, value) != true)) {
                    this.DisplayNameField = value;
                    this.RaisePropertyChanged("DisplayName");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string EntityType {
            get {
                return this.EntityTypeField;
            }
            set {
                if ((object.ReferenceEquals(this.EntityTypeField, value) != true)) {
                    this.EntityTypeField = value;
                    this.RaisePropertyChanged("EntityType");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public MileageStats.Domain.SearchService.GeocodeLocation[] Locations {
            get {
                return this.LocationsField;
            }
            set {
                if ((object.ReferenceEquals(this.LocationsField, value) != true)) {
                    this.LocationsField = value;
                    this.RaisePropertyChanged("Locations");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string[] MatchCodes {
            get {
                return this.MatchCodesField;
            }
            set {
                if ((object.ReferenceEquals(this.MatchCodesField, value) != true)) {
                    this.MatchCodesField = value;
                    this.RaisePropertyChanged("MatchCodes");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="Address", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
    [System.SerializableAttribute()]
    public partial class Address : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string AddressLineField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string AdminDistrictField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string CountryRegionField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string DistrictField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string FormattedAddressField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string LocalityField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string PostalCodeField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string PostalTownField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string AddressLine {
            get {
                return this.AddressLineField;
            }
            set {
                if ((object.ReferenceEquals(this.AddressLineField, value) != true)) {
                    this.AddressLineField = value;
                    this.RaisePropertyChanged("AddressLine");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string AdminDistrict {
            get {
                return this.AdminDistrictField;
            }
            set {
                if ((object.ReferenceEquals(this.AdminDistrictField, value) != true)) {
                    this.AdminDistrictField = value;
                    this.RaisePropertyChanged("AdminDistrict");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string CountryRegion {
            get {
                return this.CountryRegionField;
            }
            set {
                if ((object.ReferenceEquals(this.CountryRegionField, value) != true)) {
                    this.CountryRegionField = value;
                    this.RaisePropertyChanged("CountryRegion");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string District {
            get {
                return this.DistrictField;
            }
            set {
                if ((object.ReferenceEquals(this.DistrictField, value) != true)) {
                    this.DistrictField = value;
                    this.RaisePropertyChanged("District");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string FormattedAddress {
            get {
                return this.FormattedAddressField;
            }
            set {
                if ((object.ReferenceEquals(this.FormattedAddressField, value) != true)) {
                    this.FormattedAddressField = value;
                    this.RaisePropertyChanged("FormattedAddress");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string Locality {
            get {
                return this.LocalityField;
            }
            set {
                if ((object.ReferenceEquals(this.LocalityField, value) != true)) {
                    this.LocalityField = value;
                    this.RaisePropertyChanged("Locality");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string PostalCode {
            get {
                return this.PostalCodeField;
            }
            set {
                if ((object.ReferenceEquals(this.PostalCodeField, value) != true)) {
                    this.PostalCodeField = value;
                    this.RaisePropertyChanged("PostalCode");
                }
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string PostalTown {
            get {
                return this.PostalTownField;
            }
            set {
                if ((object.ReferenceEquals(this.PostalTownField, value) != true)) {
                    this.PostalTownField = value;
                    this.RaisePropertyChanged("PostalTown");
                }
            }
        }
        
        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        
        protected void RaisePropertyChanged(string propertyName) {
            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
            if ((propertyChanged != null)) {
                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    [System.ServiceModel.ServiceContractAttribute(Namespace="http://dev.virtualearth.net/webservices/v1/search/contracts", ConfigurationName="SearchService.ISearchService")]
    public interface ISearchService {
        
        [System.ServiceModel.OperationContractAttribute(Action="http://dev.virtualearth.net/webservices/v1/search/contracts/ISearchService/Search" +
            "", ReplyAction="http://dev.virtualearth.net/webservices/v1/search/contracts/ISearchService/Search" +
            "Response")]
        [System.ServiceModel.FaultContractAttribute(typeof(MileageStats.Domain.SearchService.ResponseSummary), Action="http://dev.virtualearth.net/webservices/v1/search/contracts/ISearchService/Search" +
            "ResponseSummaryFault", Name="ResponseSummary", Namespace="http://dev.virtualearth.net/webservices/v1/common")]
        MileageStats.Domain.SearchService.SearchResponse Search(MileageStats.Domain.SearchService.SearchRequest request);
    }
    
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public interface ISearchServiceChannel : MileageStats.Domain.SearchService.ISearchService, System.ServiceModel.IClientChannel {
    }
    
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    public partial class SearchServiceClient : System.ServiceModel.ClientBase<MileageStats.Domain.SearchService.ISearchService>, MileageStats.Domain.SearchService.ISearchService {
        
        public SearchServiceClient() {
        }
        
        public SearchServiceClient(string endpointConfigurationName) : 
                base(endpointConfigurationName) {
        }
        
        public SearchServiceClient(string endpointConfigurationName, string remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public SearchServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(endpointConfigurationName, remoteAddress) {
        }
        
        public SearchServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
                base(binding, remoteAddress) {
        }
        
        public MileageStats.Domain.SearchService.SearchResponse Search(MileageStats.Domain.SearchService.SearchRequest request) {
            return base.Channel.Search(request);
        }
    }
}
